package com.dries.portal.module.coupon.service;

import com.dries.portal.module.coupon.vo.CouponVo;

import java.util.List;

/**
 * @Description: redis 相关操作服务接口定义
 * 1. 用户的三个状态优惠码 Cache相关操作
 * 2. 优惠券模板生成的优惠券码 Cache 操作
 * @Author ZSY
 * @createTime 2020/7/28 17:04
 */
public interface IRedisService {

    /** 根据userId 和状态 找的缓存的优惠券列表数据 */
    List<CouponVo> getCacheCoupons(Long userId, Integer status);

    /** 避免缓存穿透 保存空的优惠券列表到缓存中 */
    void saveEmptyCouponListToCache(Long userId, List<Integer> status);

    /** 尝试从 Cache 中获取一个优惠券码 */
    String tryToAcquireCouponCodeFromCache(Integer templateId);

    /** 将优惠券保存到cache中 */
    Integer addCouponToCache(Long userId, List<CouponVo> coupons, Integer status);

}
